(* Creme Caramel Compiler (Triple C) - Michele Caceffo - 2008 *)

(** Here are listed all the exceptions used into the program *)

exception SEMANTIC_ERROR of string
exception SYNTAX_ERROR of string
exception TYPE_ERROR of string

exception NON_DECLARED_VARIABLE of string
(* LDL: add this exception in the case it was tried to use an ide as an unexisting user defined type *)
exception NON_DECLARED_TYPE of string
(* LDL: add this exception in the case it was tried to use a non existing field for a record *)
exception NON_DECLARED_FIELD of string

(** This exception is used for all those cases which must be matched 
    into a pattern-matching, but will never verify, e.g. the push_params
    in target.ml, where the instruction Call can only be invoked with a 
    function name. Seems like "The exception proves the rule"
*)
exception CONFIRM_RULE of string
